package com.example.hotelmanagement.mapper;

import com.example.hotelmanagement.entity.Hotel;
import org.apache.ibatis.annotations.*;

import java.util.List;

@Mapper
public interface HotelMapper {

    /**
     * 获取所有酒店信息
     *
     * @return 所有酒店的列表
     */
    @Select("SELECT * FROM hotels")
    List<Hotel> getAllHotels();

    /**
     * 根据酒店ID获取酒店信息
     *
     * @param hotelId 酒店ID
     * @return 酒店信息
     */
    @Select("SELECT * FROM hotels WHERE id = #{hotelId}")
    Hotel getHotelById(Long hotelId);

    /**
     * 添加新的酒店
     *
     * @param hotel 新酒店信息
     */
    @Insert("INSERT INTO hotels (name, location, price, description) VALUES (#{name}, #{location}, #{price}, #{description})")
    void addHotel(Hotel hotel);

    /**
     * 更新酒店信息
     *
     * @param hotel 更新后的酒店信息
     */
    @Update("UPDATE hotels SET name = #{name}, location = #{location}, price = #{price}, description = #{description} WHERE id = #{id}")
    void updateHotel(Hotel hotel);

    /**
     * 删除指定酒店
     *
     * @param hotelId 酒店ID
     */
    @Delete("DELETE FROM hotels WHERE id = #{hotelId}")
    void deleteHotel(Long hotelId);
}
